signature IR2MIR_STRUCTS =
sig
  structure Mir : MIR 
  structure Frame : FRAME
  structure Env : ENV
  sharing type Mir.Ir.mytype = Frame.Ir.mytype
  sharing type Mir.Ir.exp = Frame.Ir.exp
  (*
  sharing Mir.Ir = Frame.Ir
  *)
end

signature IR2MIR =
sig
  include IR2MIR_STRUCTS

  val emitCode : Frame.Ir.exdecnode -> bool -> 
                 ((Mir.mir_fun * (Frame.frame) * 
                   ((bool * int * Env.types) Env.env) * 
                   ((int * Env.types) Env.struct_env) * 
		   Mir.Ir.exp *
		   Mir.Ir.exp ) list
                  * Mir.mir_data)

end
